home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Programming / AmigaTalk / User / Quaternion.p < prev    next >
Text File  |  2000-05-08  |  8KB  |  182 lines

  1. pTempVar <- <primitive 110 26 >
  2. <primitive 112 pTempVar 1  " ~= " \
  3.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r07 16r20 16r21 16rBF 16rF1 \
  4.         16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 16r22 \
  5.         16r80 16r01 16rCA 16r11 16r22 16r80 16r02 16rCA 16r81 16r03 \
  6.         16r12 16r22 16r80 16r04 16rCA 16r81 16r03 16r13 16r22 16r80 \
  7.         16r05 16rCA 16r81 16r03 16rF7 16r04 16r5B 16rF3 16rF8 16r03 \
  8.         16rF2 16r5C 16rF3 16rF2 16rF5] \
  9.     #( #isKindOf: #spart #ipart #! #jpart #kpart  )) >
  10.  
  11. <primitive 112 pTempVar 2  " >= " \
  12.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r07 16r20 16r21 16rBF 16rF1 \
  13.         16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 16r22 \
  14.         16r80 16r01 16rCB 16r11 16r22 16r80 16r02 16rCB 16r81 16r03 \
  15.         16r12 16r22 16r80 16r04 16rCB 16r81 16r03 16r13 16r22 16r80 \
  16.         16r05 16rCB 16r81 16r03 16rF7 16r04 16r5B 16rF3 16rF8 16r03 \
  17.         16rF2 16r5C 16rF3 16rF2 16rF5] \
  18.     #( #isKindOf: #spart #ipart #& #jpart #kpart  )) >
  19.  
  20. <primitive 112 pTempVar 3  " <= " \
  21.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r07 16r20 16r21 16rBF 16rF1 \
  22.         16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 16r22 \
  23.         16r80 16r01 16rC8 16r11 16r22 16r80 16r02 16rC8 16r81 16r03 \
  24.         16r12 16r22 16r80 16r04 16rC8 16r81 16r03 16r13 16r22 16r80 \
  25.         16r05 16rC8 16r81 16r03 16rF7 16r04 16r5B 16rF3 16rF8 16r03 \
  26.         16rF2 16r5C 16rF3 16rF2 16rF5] \
  27.     #( #isKindOf: #spart #ipart #& #jpart #kpart  )) >
  28.  
  29. <primitive 112 pTempVar 4  " > " \
  30.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r07 16r20 16r21 16rBF 16rF1 \
  31.         16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 16r22 \
  32.         16r80 16r01 16rCC 16r11 16r22 16r80 16r02 16rCC 16r81 16r03 \
  33.         16r12 16r22 16r80 16r04 16rCC 16r81 16r03 16r13 16r22 16r80 \
  34.         16r05 16rCC 16r81 16r03 16rF7 16r04 16r5B 16rF3 16rF8 16r03 \
  35.         16rF2 16r5C 16rF3 16rF2 16rF5] \
  36.     #( #isKindOf: #spart #ipart #& #jpart #kpart  )) >
  37.  
  38. <primitive 112 pTempVar 5  " < " \
  39.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r07 16r20 16r21 16rBF 16rF1 \
  40.         16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r20 16r80 \
  41.         16r01 16rF2 16r22 16r80 16r01 16rF2 16r10 16r22 16r80 16r02 \
  42.         16rC7 16r11 16r22 16r80 16r03 16rC7 16r81 16r04 16r12 16r22 \
  43.         16r80 16r05 16rC7 16r81 16r04 16r13 16r22 16r80 16r06 16rC7 \
  44.         16r81 16r04 16rF7 16r04 16r5B 16rF3 16rF8 16r03 16rF2 16r5C \
  45.         16rF3 16rF2 16rF5] \
  46.     #( #isKindOf: #computeMag #spart #ipart #& #jpart #kpart  )) >
  47.  
  48. <primitive 112 pTempVar 6  " == " \
  49.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r07 16r20 16r21 16rBF 16rF1 \
  50.         16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 16r22 \
  51.         16r80 16r01 16rC9 16r11 16r22 16r80 16r02 16rC9 16r81 16r03 \
  52.         16r12 16r22 16r80 16r04 16rC9 16r81 16r03 16r13 16r22 16r80 \
  53.         16r05 16rC9 16r81 16r03 16rF7 16r04 16r5B 16rF3 16rF8 16r03 \
  54.         16rF2 16r5C 16rF3 16rF2 16rF5] \
  55.     #( #isKindOf: #spart #ipart #& #jpart #kpart  )) >
  56.  
  57. <primitive 112 pTempVar 7  " printString " \
  58.   #( #[ 16r30 16r10 16rFA 16r01 16r4E 16r0B 16r11 16r31 16r0B 16r11 16r11 \
  59.         16rFA 16r01 16r4E 16r0B 16r11 16r31 16r0B 16r11 16r12 16rFA \
  60.         16r01 16r4E 16r0B 16r11 16r31 16r0B 16r11 16r13 16rFA 16r01 \
  61.         16r4E 16r0B 16r11 16r32 16r0B 16r11 16rA8 16rF2 16r20 16rF3 \
  62.         16rF5] \
  63.     #( '{' ', ' '}'  )) >
  64.  
  65. <primitive 112 pTempVar 8  " / " \
  66.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r07 16r20 16r21 16rBF 16rF1 \
  67.         16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r22 16r80 \
  68.         16r01 16r32 16rB5 16r22 16r80 16r03 16r34 16rB5 16r81 16r05 \
  69.         16rF7 16r07 16r36 16rFA 16r01 16r7B 16rF2 16r5D 16rF3 16rF2 \
  70.         16r20 16r22 16r80 16r07 16rC2 16rF2 16r20 16rF3 16rF5] \
  71.     #( #isKindOf: #spart 0.0 #ipart 0.0 #& 'Quaternion error: Division by zero!' #inverse  )) >
  72.  
  73. <primitive 112 pTempVar 9  " * " \
  74.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r07 16r20 16r21 16rBF 16rF1 \
  75.         16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 16r22 \
  76.         16r80 16r01 16rC2 16r11 16r22 16r80 16r02 16rC2 16rC1 16r12 \
  77.         16r22 16r80 16r03 16rC2 16rC1 16r13 16r22 16r80 16r04 16rC2 \
  78.         16rC1 16r60 16r11 16r22 16r80 16r01 16rC2 16r10 16r22 16r80 \
  79.         16r02 16rC2 16rC0 16r13 16r22 16r80 16r03 16rC2 16rC0 16r12 \
  80.         16r22 16r80 16r04 16rC2 16rC1 16r61 16r12 16r22 16r80 16r01 \
  81.         16rC2 16r13 16r22 16r80 16r02 16rC2 16rC1 16r10 16r22 16r80 \
  82.         16r03 16rC2 16rC0 16r11 16r22 16r80 16r04 16rC2 16rC0 16r62 \
  83.         16r13 16r22 16r80 16r01 16rC2 16r12 16r22 16r80 16r02 16rC2 \
  84.         16rC0 16r11 16r22 16r80 16r03 16rC2 16rC1 16r10 16r22 16r80 \
  85.         16r04 16rC2 16rC0 16r63 16r20 16rF3 16rF5] \
  86.     #( #isKindOf: #spart #ipart #jpart #kpart  )) >
  87.  
  88. <primitive 112 pTempVar 10  " - " \
  89.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r07 16r20 16r21 16rBF 16rF1 \
  90.         16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r20 16r80 \
  91.         16r01 16r22 16r80 16r01 16rC1 16r60 16r20 16r80 16r02 16r22 \
  92.         16r80 16r02 16rC1 16r61 16r20 16r80 16r03 16r22 16r80 16r03 \
  93.         16rC1 16r62 16r20 16r80 16r04 16r22 16r80 16r04 16rC1 16r63 \
  94.         16r20 16rF3 16rF5] \
  95.     #( #isKindOf: #spart #ipart #jpart #kpart  )) >
  96.  
  97. <primitive 112 pTempVar 11  " + " \
  98.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r07 16r20 16r21 16rBF 16rF1 \
  99.         16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r22 16r80 \
  100.         16r01 16r20 16r80 16r01 16rC0 16r60 16r22 16r80 16r02 16r20 \
  101.         16r80 16r02 16rC0 16r61 16r22 16r80 16r03 16r20 16r80 16r03 \
  102.         16rC0 16r62 16r22 16r80 16r04 16r20 16r80 16r04 16rC0 16r63 \
  103.         16r20 16rF3 16rF5] \
  104.     #( #isKindOf: #spart #ipart #jpart #kpart  )) >
  105.  
  106. <primitive 112 pTempVar 12  " inverse " \
  107.   #( #[ 16r20 16r80 16r00 16r31 16rC9 16rF7 16r07 16r32 16rFA 16r01 16r7B \
  108.         16rF2 16r5D 16rF3 16rF2 16r20 16r80 16r03 16r20 16r80 16r00 \
  109.         16rBE 16rF3 16rF5] \
  110.     #( #norm 0.0 'Quaternion error: Division by zero!' #conjugate  )) >
  111.  
  112. <primitive 112 pTempVar 13  " norm " \
  113.   #( #[ 16r10 16r10 16rC2 16r11 16r11 16rC2 16rC0 16r12 16r12 16rC2 16rC0 \
  114.         16r13 16r13 16rC2 16rC0 16rF3 16rF5] \
  115.     #(  )) >
  116.  
  117. <primitive 112 pTempVar 14  " ~^ " \
  118.   #( #[ 16r20 16rF2 16rF5] \
  119.     #(  )) >
  120.  
  121. <primitive 112 pTempVar 15  " conjugate " \
  122.   #( #[ 16r30 16r11 16rC2 16r61 16r31 16r12 16rC2 16r62 16r32 16r13 16rC2 \
  123.         16r63 16r20 16rF3 16rF5] \
  124.     #( -1.0 -1.0 -1.0  )) >
  125.  
  126. <primitive 112 pTempVar 16  " coerce: " \
  127.   #( #[ 16r40 16rA0 16r72 16r22 16r21 16r81 16r01 16rF2 16r22 16r32 16r81 \
  128.         16r03 16rF2 16r22 16r34 16r81 16r05 16rF2 16r22 16r36 16r81 \
  129.         16r07 16rF2 16r22 16rF3 16rF5] \
  130.     #( #Quaternion #tensor: 0.0 #ipart: 0.0 #jpart: 0.0 #kpart:  )) >
  131.  
  132. <primitive 112 pTempVar 17  " versor:p2:p3: " \
  133.   #( #[ 16r21 16r61 16r22 16r62 16r23 16r63 16rF5] \
  134.     #(  )) >
  135.  
  136. <primitive 112 pTempVar 18  " kpart: " \
  137.   #( #[ 16r21 16r63 16rF5] \
  138.     #(  )) >
  139.  
  140. <primitive 112 pTempVar 19  " jpart: " \
  141.   #( #[ 16r21 16r62 16rF5] \
  142.     #(  )) >
  143.  
  144. <primitive 112 pTempVar 20  " ipart: " \
  145.   #( #[ 16r21 16r61 16rF5] \
  146.     #(  )) >
  147.  
  148. <primitive 112 pTempVar 21  " tensor: " \
  149.   #( #[ 16r21 16r60 16rF5] \
  150.     #(  )) >
  151.  
  152. <primitive 112 pTempVar 22  " kpart " \
  153.   #( #[ 16r13 16rF3 16rF5] \
  154.     #(  )) >
  155.  
  156. <primitive 112 pTempVar 23  " jpart " \
  157.   #( #[ 16r12 16rF3 16rF5] \
  158.     #(  )) >
  159.  
  160. <primitive 112 pTempVar 24  " ipart " \
  161.   #( #[ 16r11 16rF3 16rF5] \
  162.     #(  )) >
  163.  
  164. <primitive 112 pTempVar 25  " tensor " \
  165.   #( #[ 16r10 16rF3 16rF5] \
  166.     #(  )) >
  167.  
  168. <primitive 112 pTempVar 26  " new " \
  169.   #( #[ 16r05 16r2B 16r30 16rB0 16r60 16r05 16r2B 16r31 16rB0 16r61 16r05 \
  170.         16r2B 16r32 16rB0 16r62 16r05 16r2B 16r33 16rB0 16r63 16rF5 \
  171.        ] \
  172.     #( 0.0 0.0 0.0 0.0  )) >
  173.  
  174. <primitive 98 #Quaternion \
  175.   <primitive 97 #Quaternion #Magnitude #Quaternion.st \
  176.    #(  #s #i #j #k ) \
  177.    #( #~= #>= #<= #> #< #== #printString #/ #* #- #+ #inverse #norm #~^ #conjugate  \
  178.        #coerce: #versor:p2:p3: #kpart: #jpart: #ipart: #tensor: #kpart #jpart #ipart #tensor  \
  179.        #new  ) \
  180.   pTempVar 6 19 >>
  181.  
  182.